package cn.cai.pethome.system.mapper;

import cn.cai.pethome.system.domain.Permission;
import cn.cai.pethome.system.domain.Role;
import cn.cai.pethome.base.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author xiaocai
 * @since 2022-09-05
 */
@Component
public interface RoleMapper extends BaseMapper<Role> {

    /**
     * 批量添加角色权限中间表数据
     *  @Param("role_id")注解的作用是：
     *      mapper层接口方法有多个参数时，xml对应的sql标签却只能有一个参数
     *      注解的作用是：将这些多个参数全部封装到一个HashMap中，以注解的属性值为key
     * @param role_id
     * @param permissionIds
     */
    void saveRolePermissionBatch(@Param("role_id") Long role_id,
                                 @Param("permissionIds") List<Long> permissionIds);

    //先根据角色id清空角色权限中间表的数据
    void deleteRolePermissionByRoleId(Long role_id);

    /**
     * 前端返回的权限ids组装成树形结构(二维数组)
     * @param permissionIds
     * @return
     */
    List<Permission> selectBatchIds(List<Long> permissionIds);

}
